home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 3: The Continuation / 17-Bit_The_Continuation_Disc.iso / amigan / amigan 3 / unix / ckuker.mak < prev    next >
Text File  |  1994-01-27  |  10KB  |  283 lines

  1. # CKUKER.MAK, Version 2.05, 19 Mar 86
  2. #
  3. # -- Makefile to build C-Kermit for Unix and Unix-like systems --
  4. #
  5. # Read instructions below before proceeding, then
  6. # rename this file to "makefile" or "Makefile", and then:
  7. #
  8. # for Berkeley Unix 4.x, "make bsd"
  9. # for Berkeley Unix 2.9 (PDP-11), "make bsd29"
  10. # for AT&T 3Bx systems, "make att3bx"
  11. # for AT&T generic System III/System V, "make sys3" or "make sys3nid"
  12. # for Bell Unix Version 7 (aka 7th Edition), "make v7" (but see below)
  13. # for Microsoft Xenix (/286, PC/AT, etc), "make xenix"
  14. # for Interactive System III (PC/IX) on PC/XT, "make pcix"
  15. # for Interactive Sys III on other systems, "make is3"
  16. # for Masscomp variation on Sys III, "make rtu"
  17. # for DEC Pro-350 with Pro/Venix V1.x, "make provx1"
  18. # for DEC Pro-350 with Pro/Venix V2.0 (Sys V), "make sys3nid" 
  19. # for DEC Pro-380 with Pro/Venix V2.0 (Sys V), "make sys3" or "make sys3nid"
  20. # for NCR Tower 1632, OS 1.02, "make tower1"
  21. # for NCR Tower 1632 with System V, "make sys3"
  22. # for Fortune 16:32, For:Pro 1.7, "make ft17"
  23. # for Valid Scaldstar, "make valid"
  24. # for BBN C/70 with IOS 2.0, "make c70"
  25. # for Amdahl UTS 2.4 on IBM 370 series & compatible mainframes, "make uts24"
  26. # for Amdahl UTSV IBM 370 series & compatible mainframes, "make sys3"
  27. # for Sequent Balance 8000, "make bsd4"
  28. #
  29. ##############################################################################
  30. #
  31. # Notes:
  32. #
  33. #  In many cases, the -O (optimize) compiler switch is omitted.  Feel free
  34. #  to add it if you trust your optimizer.  The ckuus2.c module, in particular,
  35. #  tends to make optimizers blow up.
  36. #
  37. #  "make bsd" should produce a working C-Kermit for both 4.1, 4.2, and
  38. #  (hopefully) 4.3bsd on VAX, SUN, Pyramid, and other 4.x systems.
  39. #
  40. #  Either "make sys3" or "make sys3nid" tends to produce a working version on
  41. #  any ATT System III or System V system, including Motorola Four Phase, Callan
  42. #  Unistar, Cadmus, NCR Tower, HP9836 Series 200, Plexus,
  43. #  Heurikon, etc etc (for exceptions, see below; AT&T 3Bx systems have their
  44. #  own entry).  As far as C-Kermit goes, there is no functional difference
  45. #  between ATT System III and System V, so there is no need for a separate
  46. #  "make sys5" entry (but there is one anyway; it merely invokes "make sys3").
  47. #
  48. #  "make sys3nid" is equivalent to "make sys3" but leaves out the -i option,
  49. #  which is used indicate that separate instruction and data (text) spaces are
  50. #  to be used, as on a PDP-11.  Some systems don't support this option, others
  51. #  may require it.  If one of these options doesn't work on your System III
  52. #  or System V system, try the other.
  53. #
  54. #  For version 7, several variables must be defined to the values
  55. #  associated with your system.  BOOTNAME=/edition7 is the kernel image on
  56. #  okstate's Perkin-Elmer 3230.  Others will probably be /unix.  PROCNAME=proc
  57. #  is the name of the structure assigned to each process on okstate's system.
  58. #  This may be "_proc" or some other variation.  See <sys/proc.h> for more info
  59. #  on your systems name conventions.  NPROCNAME=nproc is the name of a
  60. #  Kernal variable that tells how many "proc" structures there are.  Again
  61. #  this may be different on your system, but nproc will probably be somewhere.
  62. #  The variable NPTYPE is the type of the nproc variable -- int, short, etc.
  63. #  which can probably be gleaned from <sys/param.h>.
  64. #  The definition of DIRECT is a little more complicated.  If nlist() returns,
  65. #  for "proc" only, the address of the array, then you should define DIRECT
  66. #  as it is below.  If however, nlist() returns the address of a pointer to
  67. #  the array, then you should give DIRECT a null definition (DIRECT= ).  The
  68. #  extern declaration in <sys/proc.h> should clarify this for you.  If it
  69. #  is "extern struct proc *proc", then you should NOT define DIRECT.  If it
  70. #  is "extern struct proc proc[]", then you should probably define DIRECT as
  71. #  it is below.  See ckuv7.hlp for further information.
  72. #
  73. #  For 2.9bsd, the makefile may use pcc rather than cc for compiles;
  74. #  that's what the CC and CC2 definitions are for (the current version
  75. #  of the makefile uses cc for both; this was tested and seems to work on
  76. #  the DEC Pro 380).  2.9 support basically follows the 4.1 path.
  77. #  Some 2.9 systems use "dir.h" for the directory header file, others
  78. #  will need to change this to "ndir.h".
  79. #
  80. #  The v7 and 2.9bsd versions assume I&D space on a PDP-11.  When building
  81. #  C-Kermit for v7 on a PDP-11, you should probably add the -i option to
  82. #  the link flags.  Without I&D space, overlays would probably have to be
  83. #  used (or code mapping a`la Pro/Venix if that's available).
  84. #
  85. #  Other systems require some special treatment:
  86. #
  87. #  For HP9000 series 500, use "make sys3nid", but
  88. #  1. In ckutio.c, don't #include <sys/file.h> or ioctl.h.
  89. #  2. In ckufio.c, don't #include <sys/file.h>.
  90. #
  91. #  For Ridge32 (ROS3.2), use "make sys3", but
  92. #  1. Use "CFLAGS = -DUXIII -i -O" "LNKFLAGS = -i"
  93. #  2. Don't #include <sys/file.h> in cku[tf]io.c.
  94. #
  95. #  For Whitechapel MG-1 Genix 1.3, use "make bsd", but
  96. #  1. In ckufio.c, have zkself() return 0 or call getpid, rather than getppid,
  97. #     or simply do "return(kill(0,9))" rather than "return(kill getppid(),1)".
  98. #  2. Wart reportedly can't process ckcpro.w; just work directly from ckcpro.c.
  99. #
  100. #  For Pixel 1000, use "make bsd", do step 1 for Whitechapel MG-1, above.
  101. #
  102. #  For Altos 986 with Xenix 3.0, use "make sys3", but
  103. #  1. Get rid of any "(void)"'s (they're only there for Lint anyway)
  104. #  2. In ckcdeb.h, define CHAR to be "char" rather than "unsigned char".
  105. #
  106. #  Other systems that are close to, but not quite, like Sys III or V, or
  107. #  4.x BSD or V7 -- look at some of the tricks used below and see if you
  108. #  can find a combination that works for you.
  109. #
  110. ##############################################################################
  111. #
  112. #  V7-specific variables.
  113. #  These are set up for Perkin-Elmer 3230 V7 Unix:
  114. PROC=proc
  115. DIRECT=
  116. NPROC=nproc
  117. NPTYPE=int
  118. BOOTFILE=/edition7
  119. #
  120. # ( For TRS-80 Xenix, use PROC=_proc, DIRECT=-DDIRECT, NPROC=_Nproc, 
  121. #   NPTYPE=short, BOOTFILE=/xenix )
  122. #
  123. ###########################################################################
  124. #
  125. #  Compile and Link variables:
  126. #
  127. LNKFLAGS=
  128. CC= cc
  129. CC2= cc
  130. #
  131. ###########################################################################
  132. #
  133. # Dependencies Section:
  134. #
  135. make: 
  136.     @echo 'Make what?  You must tell which system to make C-Kermit for.'
  137.  
  138. wermit: ckcmai.o ckucmd.o ckuusr.o ckuus2.o ckuus3.o ckcpro.o ckcfns.o \
  139.          ckcfn2.o ckucon.o ckutio.o ckufio.o ckudia.o ckuscr.o
  140.     $(CC2) $(LNKFLAGS) -o wermit ckcmai.o ckutio.o ckufio.o ckcfns.o \
  141.          ckcfn2.o ckcpro.o ckucmd.o ckuus2.o ckuus3.o ckuusr.o \
  142.          ckucon.o ckudia.o ckuscr.o
  143.  
  144. ckcmai.o: ckcmai.c ckcker.h ckcdeb.h
  145.  
  146. ckuusr.o: ckuusr.c ckucmd.h ckcker.h ckuusr.h ckcdeb.h
  147.  
  148. ckuus2.o: ckuus2.c ckucmd.h ckcker.h ckuusr.h ckcdeb.h
  149.  
  150. ckuus3.o: ckuus3.c ckucmd.h ckcker.h ckuusr.h ckcdeb.h
  151.  
  152. ckucmd.o: ckucmd.c ckucmd.h ckcdeb.h
  153.  
  154. ckcpro.o: ckcpro.c ckcker.h ckcdeb.h
  155.  
  156. ckcpro.c: ckcpro.w wart
  157.     ./wart ckcpro.w ckcpro.c
  158.  
  159. ckcfns.o: ckcfns.c ckcker.h ckcdeb.h
  160.  
  161. ckcfn2.o: ckcfn2.c ckcker.h ckcdeb.h
  162.  
  163. ckufio.o: ckufio.c ckcker.h ckcdeb.h
  164.  
  165. ckutio.o: ckutio.c ckcdeb.h
  166.  
  167. ckucon.o: ckucon.c ckcker.h ckcdeb.h
  168.  
  169. wart: ckwart.o
  170.     $(CC) $(LNKFLAGS) -o wart ckwart.o
  171.  
  172. ckwart.o: ckwart.c
  173.  
  174. ckudia.o: ckudia.c ckcker.h ckcdeb.h
  175.  
  176. ckuscr.o: ckuscr.c ckcker.h ckcdeb.h
  177. #
  178. ###########################################################################
  179. #
  180. # Make commands for specific systems:
  181. #
  182. #
  183. #Berkeley Unix 4.1 or 4.2 (and presumably also 4.3)
  184. bsd:
  185.     make wermit "CFLAGS= -DBSD4 -DDEBUG -DTLOG"
  186.  
  187.  
  188. #Berkeley Unix 2.8, 2.9 for PDP-11s with I&D space
  189. bsd29:
  190.     make wermit "CFLAGS= -DBSD29 -DDEBUG -DTLOG" \
  191.         "LNKFLAGS= -i -lndir" "CC= cc " "CC2= cc"
  192.  
  193. #Version 7 Unix
  194. v7:
  195.     make wermit "CFLAGS=-DV7 -DDEBUG -DTLOG -DPROCNAME=\\\"$(PROC)\\\" \
  196.     -DBOOTNAME=\\\"$(BOOTFILE)\\\" -DNPROCNAME=\\\"$(NPROC)\\\" \
  197.     -DNPTYPE=$(NPTYPE) $(DIRECT)"
  198.  
  199. #In case they type "make sys5"...
  200. sys5:
  201.     make sys3
  202.  
  203.  
  204. #Generic ATT System III or System V (with I&D space)
  205. sys3:
  206.     make wermit "CFLAGS = -DUXIII -DDEBUG -DTLOG -i -O" "LNKFLAGS = -i"
  207.  
  208.  
  209. #Generic ATT System III or System V (no I&D space)
  210. sys3nid:
  211.     make wermit "CFLAGS = -DUXIII -DDEBUG -DTLOG -O" "LNKFLAGS ="
  212.  
  213.  
  214. #AT&T 3B-series computers running System V
  215. #  Only difference from sys3 is lock file stuff...
  216. att3bx:
  217.     make wermit "CFLAGS = -DUXIII -DATT3BX -DDEBUG -DTLOG -i -O" \
  218.         "LNKFLAGS = -i"
  219.  
  220.  
  221. #Microsoft "Xenix/286" e.g. for IBM PC/AT
  222. xenix:
  223.     make wermit "CFLAGS= -DXENIX -DUXIII -DDEBUG -DTLOG -F 3000 -i" \
  224.         "LNKFLAGS = -F 3000 -i"
  225.  
  226.  
  227. #PC/IX, Interactive Corp System III for IBM PC/XT
  228. pcix:
  229.     make wermit \
  230.     "CFLAGS= -DPCIX -DUXIII -DISIII -DDEBUG -DTLOG -Dsdata=sdatax -O -i" \
  231.         "LNKFLAGS = -i"
  232.  
  233.  
  234. #Interactive Corp System III port in general --
  235. is3:
  236.     make wermit \
  237.         "CFLAGS = -DISIII -DUXIII -DDEBUG -DTLOG -Ddata=datax -O -i" \
  238.         "LNKFLAGS = -i"
  239.  
  240.  
  241. #Masscomp System III
  242. rtu:
  243.     make wermit "CFLAGS= -UFIONREAD -DUXIII -DDEBUG -DTLOG -O" \
  244.         "LNKFLAGS ="
  245.  
  246. #DEC Pro-3xx with Pro/Venix V1.0 or V1.1
  247. # Requires code-mapping on non-I&D-space 11/23 processor, plus some
  248. # fiddling to get interrupt targets into resident code section.
  249. provx1:
  250.     make wart "CFLAGS= -DPROVX1" "LNKFLAGS= "
  251.     make wermit "CFLAGS = -DPROVX1 -DDEBUG -DTLOG -md780" \
  252.         "LNKFLAGS= -u _sleep -lc -md780"
  253.  
  254.  
  255. #NCR Tower 1632, OS 1.02
  256. tower1:
  257.     make wermit "CFLAGS= -DDEBUG -DTLOG -DTOWER1"
  258.  
  259. #Fortune 16:32, For:Pro 1.7 (mostly like 4.1bsd)
  260. ft17:
  261.     make wermit "CFLAGS= -DDEBUG -DTLOG -DBSD4 -DFT17"
  262.  
  263.  
  264. #Valid Scaldstar
  265. #Berkeleyish, but need to change some variable names.
  266. valid:
  267.     make wermit "CFLAGS= -DBSD4 -Dcc=ccx -DFREAD=1"
  268.  
  269.  
  270. #Amdahl UTS 2.4 on IBM 370 series compatible mainframes.
  271. #Mostly like V7, but can't do initrawq() buffer peeking.
  272. uts24:
  273.     make wermit "CFLAGS=-DV7 -DDEBUG -DTLOG -DPROCNAME=\\\"$(PROC)\\\" \
  274.     -DUTS24 -DBOOTNAME=\\\"$(BOOTFILE)\\\" -DNPROCNAME=\\\"$(NPROC)\\\" \
  275.     -DNPTYPE=$(NPTYPE) $(DIRECT)"
  276.  
  277.  
  278. #BBN C/70 with IOS 2.0
  279. #Mostly Berkeley-like, but with some ATTisms
  280. c70:
  281.     make wermit "CFLAGS= -DBSD4 -DC70 -DDEBUG -DTLOG"
  282.